import numpy as np

def get_crm_points(wing_type):
    """
    Return the raw CRM points for a specific flight condition.
    Any AoA from [2.50, 2.75, 3.00, 3.25, 3.50, 3.75, 4.00].
    Or 'jig' or 'jig_wind_tunnel', for the undeformed wing based on the initial
    paper definition and the wind tunnel model, respectively.

    Parameters
    ----------
    wing_type : string
        Description of the wing type to use. Example is `CRM:alpha_2.75`.
        Can use `CRM` for just the jig shape

    Returns
    -------
    raw_crm_points[n, 6] : numpy array
        The actual data points describing the CRM wing for the OpenAeroStruct
        formatted definition at n spanwise slices.
    """

    if "2.50" in wing_type:
        # eta, xle, yle, zle, twist, chord
        # Info taken from `dpw6_ae_2.50.cgns` by taking slices in TecPlot
        # Processed using `get_all_slices.py`.
        # This corresponds to the CRM shape in the wind tunnel when alpha is set to 2.50.
        #
        # Note that the first line is copied from the jig shape because we do not
        # have information about the wing section inside of the fuselage
        # because the cgns file has the wing-body together with cut meshes.
        raw_crm_points = np.array([
        [0.,            904.294,           0.0,          174.126,         6.7166,       536.181], # 0
    [0.1049403748, 993.7133720472, 121.2598425197, 175.5806919685, 4.2703749015, 466.4424696512],
    [0.1475622617, 1030.0131779528, 170.5099362598, 176.8145874409, 3.5906161801, 437.2208804746],
    [0.1901841486, 1067.3508566929, 219.7600300000, 177.1734909449, 3.0722535277, 408.1217692565],
    [0.2328060355, 1104.8788448819, 269.0101237402, 177.6540599606, 2.4247665985, 379.0575056036],
    [0.2754279225, 1142.4141614173, 318.2602174803, 178.3661920472, 1.7397239459, 350.0486593920],
    [0.3180498094, 1179.9045023622, 367.5103112205, 179.5618736220, 1.1338378802, 321.1285470198],
    [0.3606716964, 1217.4137074803, 416.7604051181, 181.2638461811, 0.6426495030, 292.2665819632],
    [0.4032935833, 1254.9195842520, 466.0104988189, 183.3368159843, 0.1145012201, 276.4325401825],
    [0.4459154702, 1292.4185145669, 515.2605925197, 186.1374787795, -0.4133244517, 264.3915920322],
    [0.4885373571, 1329.9177980315, 564.5106862205, 189.5874755512, -0.8613285269, 252.3661917736],
    [0.5311592440, 1367.4232401575, 613.7607799213, 193.9273737402, -1.1789942200, 240.3406240250],
    [0.5737811308, 1404.9274842520, 663.0108736220, 198.9160642520, -1.4400475650, 228.3156604767],
    [0.6164030177, 1442.4341519685, 712.2609673228, 204.3928406693, -1.7334642513, 216.2917930294],
    [0.6590249046, 1479.9447094488, 761.5110610236, 210.6020626378, -1.9996967155, 204.2672081429],
    [0.7016467915, 1517.4598960630, 810.7611547244, 217.5159629921, -2.2208033706, 192.2355877315],
    [0.7442686784, 1554.9809149606, 860.0112484252, 225.2470738583, -2.4296644189, 180.1927605931],
    [0.7868905656, 1592.4879830709, 909.2613425197, 233.5962840157, -2.6730246510, 168.1622158499],
    [0.8295124525, 1630.0160791339, 958.5114362205, 242.6969757874, -2.9183466572, 156.1148297967],
    [0.8721343394, 1667.5396468504, 1007.7615299213, 252.3841504331, -3.1722962960, 144.0746066886],
    [0.9147562262, 1705.0680330709, 1057.0116236220, 262.5914150394, -3.5618728840, 132.0496338269],
    [0.9573781131, 1742.5951838583, 1106.2617173228, 273.1393196457, -4.0663236918, 120.0391703030],
    [1.0000000000, 1780.1390358268, 1155.5118110236, 283.7659304724, -4.6017689717, 108.0075050728]])

    elif "2.75" in wing_type:
        # eta, xle, yle, zle, twist, chord
        # Info taken from `dpw6_ae_2.75.cgns` by taking slices in TecPlot
        # Processed using `get_all_slices.py`.
        # This corresponds to the CRM shape in the wind tunnel when alpha is set to 2.75.
        #
        # Note that the first line is copied from the jig shape because we do not
        # have information about the wing section inside of the fuselage
        # because the cgns file has the wing-body together with cut meshes.
        raw_crm_points = np.array([
        [0.,            904.294,           0.0,          174.126,         6.7166,       536.181], # 0
    [0.1049403748, 993.7138118110, 121.2598425197, 175.8828985433, 4.3064288580, 466.4631457464],
    [0.1475622617, 1030.0125685039, 170.5099362598, 176.8216161417, 3.5899506711, 437.2201981238],
    [0.1901841486, 1067.3502531496, 219.7600300000, 177.1741468504, 3.0704027125, 408.1221709540],
    [0.2328060355, 1104.8785736220, 269.0101237402, 177.6574524409, 2.4218173307, 379.0574671904],
    [0.2754279225, 1142.4137122047, 318.2602174803, 178.3693226772, 1.7348508885, 350.0486268673],
    [0.3180498094, 1179.9041996063, 367.5103112205, 179.5740685039, 1.1260783099, 321.1282460136],
    [0.3606716964, 1217.4135641732, 416.7604051181, 181.3039487402, 0.6320326304, 292.2667642082],
    [0.4032935833, 1254.9198700787, 466.0104988189, 183.4083569685, 0.1001945603, 276.4326600724],
    [0.4459154702, 1292.4185027559, 515.2605925197, 186.2613112205, -0.4313792294, 264.3934743324],
    [0.4885373571, 1329.9177011811, 564.5106862205, 189.7670859055, -0.8832854545, 252.3697629697],
    [0.5311592440, 1367.4235448819, 613.7607799213, 194.1769490157, -1.2064052719, 240.3458791762],
    [0.5737811308, 1404.9283440945, 663.0108736220, 199.1855426378, -1.4882476942, 228.3242182875],
    [0.6164030177, 1442.4362011811, 712.2609673228, 204.8247526772, -1.7694295897, 216.3000209815],
    [0.6590249046, 1479.9483543307, 761.5110610236, 211.1363005512, -2.0434689434, 204.2772529463],
    [0.7016467915, 1517.4654637795, 810.7611547244, 218.1652856693, -2.2699133205, 192.2467756712],
    [0.7442686784, 1554.9898948819, 860.0112484252, 226.0318298031, -2.4841677570, 180.2040428725],
    [0.7868905656, 1592.4996003937, 909.2613425197, 234.5204538976, -2.7327835422, 168.1745654077],
    [0.8295124525, 1630.0325484252, 958.5114362205, 243.7741411811, -2.9822838340, 156.1260647832],
    [0.8721343394, 1667.5602492126, 1007.7615299213, 253.6186485827, -3.2409127562, 144.0854789941],
    [0.9147562262, 1705.0931177165, 1057.0116236220, 263.9955130315, -3.6316327683, 132.0598826266],
    [0.9573781131, 1742.6251350394, 1106.2617173228, 274.7061785039, -4.1417911628, 120.0493724390],
    [1.0000000000, 1780.1757874016, 1155.5118110236, 285.5045883858, -4.6778406881, 108.0150257616]])

    elif "3.00" in wing_type:
        # eta, xle, yle, zle, twist, chord
        # Info taken from `dpw6_ae_3.00.cgns` by taking slices in TecPlot
        # Processed using `get_all_slices.py`.
        # This corresponds to the CRM shape in the wind tunnel when alpha is set to 3.00.
        #
        # Note that the first line is copied from the jig shape because we do not
        # have information about the wing section inside of the fuselage
        # because the cgns file has the wing-body together with cut meshes.
        raw_crm_points = np.array([
        [0.,            904.294,           0.0,          174.126,         6.7166,       536.181], # 0
    [0.1049403748, 993.7038641732, 121.2598425197, 175.7827130709, 4.3075557714, 466.4764329228],
    [0.1475622617, 1029.9985307087, 170.5099362598, 176.6924088976, 3.5837020567, 437.2343927979],
    [0.1901841486, 1067.3517220472, 219.7600300000, 177.1061114173, 3.0666868976, 408.1191375555],
    [0.2328060355, 1104.8850712598, 269.0101237402, 177.6370900000, 2.4197353916, 379.0499527333],
    [0.2754279225, 1142.4175724409, 318.2602174803, 178.3719658268, 1.7306823429, 350.0439869441],
    [0.3180498094, 1179.9051893701, 367.5103112205, 179.5961155118, 1.1194301456, 321.1268101117],
    [0.3606716964, 1217.4141429134, 416.7604051181, 181.3509205512, 0.6234113521, 292.2656248630],
    [0.4032935833, 1254.9200535433, 466.0104988189, 183.4706485827, 0.0857857562, 276.4329559082],
    [0.4459154702, 1292.4186220472, 515.2605925197, 186.3742367717, -0.4503252531, 264.3952069143],
    [0.4885373571, 1329.9178976378, 564.5106862205, 189.9180974803, -0.9040283220, 252.3728395311],
    [0.5311592440, 1367.4241153543, 613.7607799213, 194.3945537008, -1.2296537640, 240.3502351264],
    [0.5737811308, 1404.9293543307, 663.0108736220, 199.5300370079, -1.5006302827, 228.3285271445],
    [0.6164030177, 1442.4383322835, 712.2609673228, 205.1834300394, -1.8017015125, 216.3071277163],
    [0.6590249046, 1479.9518830709, 761.5110610236, 211.5865619291, -2.0800475240, 204.2856743769],
    [0.7016467915, 1517.4707196850, 810.7611547244, 218.7116104331, -2.3102936984, 192.2560559430],
    [0.7442686784, 1554.9981220472, 860.0112484252, 226.6881706693, -2.5293419514, 180.2134536102],
    [0.7868905656, 1592.5102980315, 909.2613425197, 235.2924776378, -2.7820751214, 168.1847222691],
    [0.8295124525, 1630.0473594488, 958.5114362205, 244.6706752756, -3.0358315019, 156.1354993545],
    [0.8721343394, 1667.5787094488, 1007.7615299213, 254.6492317323, -3.2975705963, 144.0945690800],
    [0.9147562262, 1705.1156228346, 1057.0116236220, 265.1579912992, -3.6932834024, 132.0690364635],
    [0.9573781131, 1742.6519578740, 1106.2617173228, 276.0179823228, -4.2031461412, 120.0579632049],
    [1.0000000000, 1780.2088291339, 1155.5118110236, 286.9649092913, -4.7396721550, 108.0212862292]])

    elif "3.25" in wing_type:
        # eta, xle, yle, zle, twist, chord
        # Info taken from `dpw6_ae_3.25.cgns` by taking slices in TecPlot
        # Processed using `get_all_slices.py`.
        # This corresponds to the CRM shape in the wind tunnel when alpha is set to 3.25.
        #
        # Note that the first line is copied from the jig shape because we do not
        # have information about the wing section inside of the fuselage
        # because the cgns file has the wing-body together with cut meshes.
        raw_crm_points = np.array([
        [0.,            904.294,           0.0,          174.126,         6.7166,       536.181], # 0
    [0.1049403748, 993.7057893701, 121.2598425197, 175.5048127953, 4.2703139588, 466.4515287235],
    [0.1475622617, 1030.0011145669, 170.5099362598, 176.7260716142, 3.5839644606, 437.2323233705],
    [0.1901841486, 1067.3522637795, 219.7600300000, 177.1351140157, 3.0653457060, 408.1181204007],
    [0.2328060355, 1104.8849381890, 269.0101237402, 177.6648706299, 2.4175917490, 379.0498711092],
    [0.2754279225, 1142.4172299213, 318.2602174803, 178.3970880315, 1.7272577123, 350.0440793418],
    [0.3180498094, 1179.9049173228, 367.5103112205, 179.6256672047, 1.1140135284, 321.1267566241],
    [0.3606716964, 1217.4141311024, 416.7604051181, 181.3994741732, 0.6162705293, 292.2654709605],
    [0.4032935833, 1254.9204062992, 466.0104988189, 183.5492022835, 0.0782483582, 276.4329495216],
    [0.4459154702, 1292.4187807087, 515.2605925197, 186.4779172441, -0.4582251712, 264.3961999147],
    [0.4885373571, 1329.9182051181, 564.5106862205, 190.0596587402, -0.9165621304, 252.3747826182],
    [0.5311592440, 1367.4245551181, 613.7607799213, 194.6373069685, -1.2308245526, 240.3520232694],
    [0.5737811308, 1404.9298011811, 663.0108736220, 199.7570963780, -1.5198519521, 228.3330743564],
    [0.6164030177, 1442.4396232283, 712.2609673228, 205.4659762992, -1.8234621284, 216.3124434703],
    [0.6590249046, 1479.9542724409, 761.5110610236, 211.9303011417, -2.1055522951, 204.2919577059],
    [0.7016467915, 1517.4744023622, 810.7611547244, 219.1210777953, -2.3391258535, 192.2629950733],
    [0.7442686784, 1555.0040834646, 860.0112484252, 227.1779492520, -2.5607826784, 180.2203655618],
    [0.7868905656, 1592.5181023622, 909.2613425197, 235.8639951181, -2.8166211968, 168.1922184664],
    [0.8295124525, 1630.0584334646, 958.5114362205, 245.3350319291, -3.0726457954, 156.1422594669],
    [0.8721343394, 1667.5926291339, 1007.7615299213, 255.4097173228, -3.3371593666, 144.1011262037],
    [0.9147562262, 1705.1329011811, 1057.0116236220, 265.9919918898, -3.7474163557, 132.0771147785],
    [0.9573781131, 1742.6719956693, 1106.2617173228, 276.9902019685, -4.2468819339, 120.0648002765],
    [1.0000000000, 1780.2328665354, 1155.5118110236, 288.0259510236, -4.7974152121, 108.0297548646]])

    elif "3.50" in wing_type:
        # eta, xle, yle, zle, twist, chord
        # Info taken from `dpw6_ae_3.50.cgns` by taking slices in TecPlot
        # Processed using `get_all_slices.py`.
        # This corresponds to the CRM shape in the wind tunnel when alpha is set to 3.50.
        #
        # Note that the first line is copied from the jig shape because we do not
        # have information about the wing section inside of the fuselage
        # because the cgns file has the wing-body together with cut meshes.
        raw_crm_points = np.array([
        [0.,            904.294,           0.0,          174.126,         6.7166,       536.181], # 0
    [0.1049403748, 993.7060960630, 121.2598425197, 175.8080457874, 4.3063886486, 466.4731932322],
    [0.1475622617, 1030.0005854331, 170.5099362598, 176.7267902756, 3.5842954769, 437.2338298993],
    [0.1901841486, 1067.3504637795, 219.7600300000, 177.1198209449, 3.0646312891, 408.1208116074],
    [0.2328060355, 1104.8828748031, 269.0101237402, 177.6543988583, 2.4146965506, 379.0514650598],
    [0.2754279225, 1142.4173011811, 318.2602174803, 178.4104430709, 1.7233970176, 350.0434003828],
    [0.3180498094, 1179.9062519685, 367.5103112205, 179.6665424803, 1.1103807392, 321.1250784236],
    [0.3606716964, 1217.4150070866, 416.7604051181, 181.4564288976, 0.6115964897, 292.2644508668],
    [0.4032935833, 1254.9207590551, 466.0104988189, 183.6193822835, 0.0715052603, 276.4329589742],
    [0.4459154702, 1292.4189031496, 515.2605925197, 186.5704349606, -0.4664945357, 264.3971704792],
    [0.4885373571, 1329.9184385827, 564.5106862205, 190.1751474016, -0.9267050543, 252.3764026380],
    [0.5311592440, 1367.4251059055, 613.7607799213, 194.7831345276, -1.2426622930, 240.3542014957],
    [0.5737811308, 1404.9306062992, 663.0108736220, 199.9355476772, -1.5337417723, 228.3359935668],
    [0.6164030177, 1442.4409893701, 712.2609673228, 205.6811490157, -1.8394244172, 216.3159846570],
    [0.6590249046, 1479.9563905512, 761.5110610236, 212.1891420866, -2.1233509106, 204.2960961270],
    [0.7016467915, 1517.4774318898, 810.7611547244, 219.4248066142, -2.3591815848, 192.2675527481],
    [0.7442686784, 1555.0086649606, 860.0112484252, 227.5369712992, -2.5825802722, 180.2250084581],
    [0.7868905656, 1592.5241094488, 909.2613425197, 236.2797945276, -2.8403768169, 168.1971393078],
    [0.8295124525, 1630.0666433071, 958.5114362205, 245.8156161811, -3.0984085527, 156.1469702441],
    [0.8721343394, 1667.6027086614, 1007.7615299213, 255.9603673228, -3.3645308588, 144.1058770062],
    [0.9147562262, 1705.1453523622, 1057.0116236220, 266.6171500787, -3.7762196747, 132.0818024433],
    [0.9573781131, 1742.6868826772, 1106.2617173228, 277.6976031890, -4.2775802982, 120.0697833827],
    [1.0000000000, 1780.2516090551, 1155.5118110236, 288.8227916535, -4.8276435471, 108.0339004029]])

    elif "3.75" in wing_type:
        # eta, xle, yle, zle, twist, chord
        # Info taken from `dpw6_ae_3.75.cgns` by taking slices in TecPlot
        # Processed using `get_all_slices.py`.
        # This corresponds to the CRM shape in the wind tunnel when alpha is set to 3.75.
        #
        # Note that the first line is copied from the jig shape because we do not
        # have information about the wing section inside of the fuselage
        # because the cgns file has the wing-body together with cut meshes.
        raw_crm_points = np.array([
        [0.,            904.294,           0.0,          174.126,         6.7166,       536.181], # 0
    [0.1049403748, 993.7068271654, 121.2598425197, 175.8116903937, 4.3061383334, 466.4724368918],
    [0.1475622617, 1030.0009200787, 170.5099362598, 176.7334996063, 3.5843979101, 437.2336800502],
    [0.1901841486, 1067.3506440945, 219.7600300000, 177.1234724409, 3.0639309946, 408.1205000212],
    [0.2328060355, 1104.8834641732, 269.0101237402, 177.6661000394, 2.4130528962, 379.0503667325],
    [0.2754279225, 1142.4179011811, 318.2602174803, 178.4372910236, 1.7211510974, 350.0424044729],
    [0.3180498094, 1179.9072051181, 367.5103112205, 179.7099525591, 1.1077974691, 321.1238467672],
    [0.3606716964, 1217.4156019685, 416.7604051181, 181.5135654724, 0.6082216745, 292.2637778178],
    [0.4032935833, 1254.9210232283, 466.0104988189, 183.6942635039, 0.0678093125, 276.4329963505],
    [0.4459154702, 1292.4190913386, 515.2605925197, 186.6582589370, -0.4756300385, 264.3979670977],
    [0.4885373571, 1329.9186460630, 564.5106862205, 190.2808065354, -0.9339995806, 252.3776347476],
    [0.5311592440, 1367.4255090551, 613.7607799213, 194.9141264567, -1.2506502838, 240.3558478657],
    [0.5737811308, 1404.9313578740, 663.0108736220, 200.0879814961, -1.5440052234, 228.3381128471],
    [0.6164030177, 1442.4421877953, 712.2609673228, 205.8610069685, -1.8512289716, 216.3185337155],
    [0.6590249046, 1479.9581492126, 761.5110610236, 212.4012033465, -2.1367035412, 204.2991284312],
    [0.7016467915, 1517.4800338583, 810.7611547244, 219.6794649213, -2.3715297672, 192.2703952644],
    [0.7442686784, 1555.0122326772, 860.0112484252, 227.8236198819, -2.5990414986, 180.2284742362],
    [0.7868905656, 1592.5287263780, 909.2613425197, 236.6110509055, -2.8577884736, 168.2008179660],
    [0.8295124525, 1630.0729570866, 958.5114362205, 246.1936238583, -3.1182904611, 156.1506010986],
    [0.8721343394, 1667.6105854331, 1007.7615299213, 256.3929897638, -3.3854283696, 144.1094936779],
    [0.9147562262, 1705.1550342520, 1057.0116236220, 267.1070771260, -3.7988159897, 132.0855626416],
    [0.9573781131, 1742.6987248031, 1106.2617173228, 278.2531065354, -4.3015808587, 120.0737174893],
    [1.0000000000, 1780.2670854331, 1155.5118110236, 289.4512046063, -4.8515102425, 108.0367497582]])

    elif "4.00" in wing_type:
        # eta, xle, yle, zle, twist, chord
        # Info taken from `dpw6_ae_4.00.cgns` by taking slices in TecPlot
        # Processed using `get_all_slices.py`.
        # This corresponds to the CRM shape in the wind tunnel when alpha is set to 4.00.
        #
        # Note that the first line is copied from the jig shape because we do not
        # have information about the wing section inside of the fuselage
        # because the cgns file has the wing-body together with cut meshes.
        raw_crm_points = np.array([
        [0.,            904.294,           0.0,          174.126,         6.7166,       536.181], # 0
    [0.1049403748, 993.7056925197, 121.2598425197, 175.8055594882, 4.3062989746, 466.4735034602],
    [0.1475622617, 1029.9999881890, 170.5099362598, 176.7326250394, 3.5838764625, 437.2328268659],
    [0.1901841486, 1067.3517685039, 219.7600300000, 177.1374396457, 3.0640359095, 408.1185742207],
    [0.2328060355, 1104.8846188976, 269.0101237402, 177.6921194488, 2.4128270541, 379.0491121656],
    [0.2754279225, 1142.4188688976, 318.2602174803, 178.4716350394, 1.7204938512, 350.0411423794],
    [0.3180498094, 1179.9075559055, 367.5103112205, 179.7534834646, 1.1063030558, 321.1232265616],
    [0.3606716964, 1217.4158460630, 416.7604051181, 181.5697217717, 0.6057546886, 292.2637476539],
    [0.4032935833, 1254.9214303150, 466.0104988189, 183.7639667323, 0.0644397367, 276.4327689268],
    [0.4459154702, 1292.4192366142, 515.2605925197, 186.7448148425, -0.4768719508, 264.3984493960],
    [0.4885373571, 1329.9188374016, 564.5106862205, 190.3840371260, -0.9399639132, 252.3787605769],
    [0.5311592440, 1367.4259456693, 613.7607799213, 195.0386488189, -1.2580064617, 240.3573682403],
    [0.5737811308, 1404.9319606299, 663.0108736220, 200.2349537402, -1.5530968674, 228.3402014235],
    [0.6164030177, 1442.4432480315, 712.2609673228, 206.0332424409, -1.8620291612, 216.3210254021],
    [0.6590249046, 1479.9598161417, 761.5110610236, 212.6031379921, -2.1492751988, 204.3020279567],
    [0.7016467915, 1517.4824059055, 810.7611547244, 219.9115042126, -2.3862496809, 192.2736409199],
    [0.7442686784, 1555.0157543307, 860.0112484252, 228.0939818110, -2.6152023293, 180.2317415624],
    [0.7868905656, 1592.5332405512, 909.2613425197, 236.9198453150, -2.8761133777, 168.2044309229],
    [0.8295124525, 1630.0790141732, 958.5114362205, 246.5479013780, -3.1382062546, 156.1540966624],
    [0.8721343394, 1667.6180830709, 1007.7615299213, 256.7963355118, -3.4069180477, 144.1130724117],
    [0.9147562262, 1705.1643637795, 1057.0116236220, 267.5634429921, -3.8218206254, 132.0891046095],
    [0.9573781131, 1742.7099129921, 1106.2617173228, 278.7689766929, -4.3261943504, 120.0775722754],
    [1.0000000000, 1780.2803842520, 1155.5118110236, 290.0330695276, -4.8761258072, 108.0407026390]])

    elif "jig_wind_tunnel" in wing_type:
        # eta, xle, yle, zle, twist, chord
        # This corresponds to the CRM jig shape for the wind tunnel model.
        #
        # Note that the first line is copied from the jig shape because we do not
        # have information about the wing section inside of the fuselage
        # because the cgns file has the wing-body together with cut meshes.
        raw_crm_points = np.array([
        [0.,            904.294,           0.0,          174.126,         6.7166,       536.181], # 0
    [0.1049403708, 993.5692165354, 121.2598395276, 175.8654098819, 4.3199256335, 466.5860999823],
    [0.1475622525, 1029.9003779528, 170.5099278740, 176.6012972835, 3.5802452139, 437.2786755946],
    [0.1901841505, 1067.2118720472, 219.7600349606, 176.8844897244, 3.0547850948, 408.2083865772],
    [0.2328060321, 1104.7381303150, 269.0101233071, 177.4452239370, 2.4438518217, 379.1585553218],
    [0.2754279301, 1142.2658905512, 318.2602304331, 178.1761176772, 1.7996363879, 350.1656331299],
    [0.3180497955, 1179.7541519685, 367.5103000000, 179.2136139764, 1.2276224430, 321.2485677861],
    [0.3606716935, 1217.2680952756, 416.7604070866, 180.5531884646, 0.7613387542, 292.3807561748],
    [0.4032935914, 1254.7701736220, 466.0105141732, 182.2970983465, 0.3064736738, 276.4787953887],
    [0.4459154569, 1292.2751059055, 515.2605838583, 184.5150669685, -0.1774773151, 264.4186614476],
    [0.4885373548, 1329.7735799213, 564.5106909449, 187.4023722835, -0.5506036937, 252.3783577064],
    [0.5311592527, 1367.2786622047, 613.7607980315, 190.9011555512, -0.8070946481, 240.3362553898],
    [0.5737811507, 1404.7832940945, 663.0109051181, 194.8889597244, -1.0130749164, 228.2941035657],
    [0.6164030162, 1442.2849220472, 712.2609748031, 199.3089961417, -1.2369897956, 216.2539213411],
    [0.6590248814, 1479.7901543307, 761.5110440945, 204.2338228740, -1.4376439528, 204.2117105270],
    [0.7016468120, 1517.2977897638, 810.7611889764, 209.8330738189, -1.5879398064, 192.1655815764],
    [0.7442686772, 1554.7973153543, 860.0112582677, 216.0224951969, -1.7313527064, 180.1207714256],
    [0.7868905428, 1592.2909834646, 909.2613279528, 222.7967930709, -1.8977752266, 168.0774904617],
    [0.8295124734, 1629.7900582677, 958.5114728346, 230.1377386614, -2.0945127705, 156.0349538684],
    [0.8721343386, 1667.2937889764, 1007.7615421260, 238.2089772441, -2.2145151358, 143.9824437607],
    [0.9147562042, 1704.7921129921, 1057.0116118110, 246.4570961417, -2.5772473732, 131.9604036611],
    [0.9573780697, 1742.2943417323, 1106.2616814961, 254.9872060630, -3.0701697145, 119.9459942819],
    [1.0000000000, 1779.7950685039, 1155.5118259843, 263.5766389764, -3.6142545059, 107.9325590260]])

    elif wing_type == 'uCRM_based':
        # Modified CRM points to match the uCRM span
        # Made the z-corrdinates constant for 30% span and beyond
        # For more precise points use the uCRM geometry files on the modlab website
        # eta, xle, yle, zle, twist, chord
        raw_crm_points = np.array([
         [0.,   904.294,    0.0,   174.126, 6.7166,  536.181], # 0
         [.1,   989.505,  115.675, 175.722, 4.4402,  468.511],
         [.15, 1032.133,  173.513, 176.834, 3.6063,  434.764],
         [.2,  1076.030,  231.351, 177.912, 2.2419,  400.835],
         [.25, 1120.128,  289.188, 177.912, 2.2419,  366.996],
         [.3,  1164.153,  347.026, 178., 1.5252,  333.157],
         [.35, 1208.203,  404.864, 178.,  .9379,  299.317], # 6 yehudi break
         [.4,  1252.246,  462.701, 178.,  .4285,  277.288],
         [.45, 1296.289,  520.539, 178., -.2621,  263],
         [.5,  1340.329,  578.377, 178., -.6782,  248.973],
         [.55, 1384.375,  636.214, 178., -.9436,  234.816],
         [.60, 1428.416,  694.052, 178., -1.2067, 220.658],
         [.65, 1472.458,  751.890, 178., -1.4526, 206.501],
         [.7,  1516.504,  809.727, 178., -1.6350, 192.344],
         [.75, 1560.544,  867.565, 178., -1.8158, 178.186],
         [.8,  1604.576,  925.402, 178., -2.0301, 164.029],
         [.85, 1648.616,  983.240, 178., -2.2772, 149.872],
         [.9,  1692.659, 1041.078, 178., -2.5773, 135.714],
         [.95, 1736.710, 1098.915, 178., -3.1248, 121.557],
         [1.,  1780.737, 1158.5, 178., -3.75,   107.4] # 19
        ])

    else:
        # This is the jig CRM shape from the actual aircraft scale, not
        # the wind tunnel model.
        # eta, xle, yle, zle, twist, chord
        # Info taken from AIAA paper 2008-6919 by Vassberg
        raw_crm_points = np.array([
         [0.,   904.294,    0.0,   174.126, 6.7166,  536.181], # 0
         [.1,   989.505,  115.675, 175.722, 4.4402,  468.511],
         [.15, 1032.133,  173.513, 176.834, 3.6063,  434.764],
         [.2,  1076.030,  231.351, 177.912, 2.2419,  400.835],
         [.25, 1120.128,  289.188, 177.912, 2.2419,  366.996],
         [.3,  1164.153,  347.026, 178.886, 1.5252,  333.157],
         [.35, 1208.203,  404.864, 180.359,  .9379,  299.317], # 6 yehudi break
         [.4,  1252.246,  462.701, 182.289,  .4285,  277.288],
         [.45, 1296.289,  520.539, 184.904, -.2621,  263],
         [.5,  1340.329,  578.377, 188.389, -.6782,  248.973],
         [.55, 1384.375,  636.214, 192.736, -.9436,  234.816],
         [.60, 1428.416,  694.052, 197.689, -1.2067, 220.658],
         [.65, 1472.458,  751.890, 203.294, -1.4526, 206.501],
         [.7,  1516.504,  809.727, 209.794, -1.6350, 192.344],
         [.75, 1560.544,  867.565, 217.084, -1.8158, 178.186],
         [.8,  1604.576,  925.402, 225.188, -2.0301, 164.029],
         [.85, 1648.616,  983.240, 234.082, -2.2772, 149.872],
         [.9,  1692.659, 1041.078, 243.625, -2.5773, 135.714],
         [.95, 1736.710, 1098.915, 253.691, -3.1248, 121.557],
         [1.,  1780.737, 1156.753, 263.827, -3.75,   107.4] # 19
        ])

    return raw_crm_points
